<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
<%@page session="false" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Home Page</title>
</head>
<body>
    Dear <strong>${user}</strong>, Welcome to Home Page.
    <a href="<c:url value="/logout" />">注销</a>
    <a href="<c:url value="/logout1" />">注销</a>
    <br/>
    <br/>
    <div>
        <label>展示所有信息| 此部分每一个登录人都能看到</label>
    </div>
    <br/>
    <div>
        <label><a href="/eg/list">用户列表</a> | 此部分只要登录的用户就能看到！</label>
    </div>
    <br/>
    <div>
        <sec:authorize access="hasRole('ADMIN')">
            <label><a href="/eg/admin">编辑连接</a> | 此部分只有ADMIN角色的用户才能看到</label>
        </sec:authorize>
    </div>
    <br/>
    <div>
        <sec:authorize access="hasRole('ADMIN') and hasRole('DBA')">
            <label><a href="#">开始配置连接</a> | 此部分只有ADMIN与DBA角色的用户就有才能看到</label>
        </sec:authorize>
    </div>
    <br/>
    <div>
        <sec:authorize access="hasRole('DBA')">
            <label><a href="/dba">删除连接</a> | 此部分只有DBA角色的用户就有才能看到</label>
        </sec:authorize>
    </div>
    <br/>
    <div>
        <sec:authorize access="hasRole('USER')">
            <label><a href="/hello">你好连接</a> | 此部分只有USER角色的用户才能看到</label>
        </sec:authorize>
    </div>
    <!--
        说明： form 中的 action的值 为 /login 为 security 登录验证密码的默认登录地址
        与 controller 中的 login 方法没有直接关系。
        spring security 3.x 默认的登录拦截URL是/j_spring_security_check,
        而spring security 4.x默认拦截的URL是/login
        spring security 3.x 默认的登出地址为 /j_spring_security_logout
        而spring security 4.x默认拦截的URL是/logout
      -->
    <!--
        如果需要手动以编码的方式注销程序：
                配置value="/logout1" Controller里面有对应 logout1
        spring security 有自带的  value="/logout" 无需再Controller里面写代码
        一样能处理注销，只是不能有自己的业务逻辑
    -->
</body>
</html>